package com.cs.service;
import com.cs.domain.*;
import com.cs.domain.CSNotice;
import com.cs.domain.CsTender;
import com.cs.domain.vo.*;
import com.ruoyi.common.core.domain.R;

import java.util.List;

import java.util.Map;
/**
 * 招标项目Service接口
 * 
 * @author ruoyi
 * @date 2024-11-25
 */
public interface ICsTenderService 
{
    /**
     * 查询招标项目
     * 
     * @param sId 招标项目主键
     * @return 招标项目
     */
    public CsTender selectCsTenderBySId(Long sId);

    /**
     * 查询招标项目列表
     * 
     * @param csTender 招标项目
     * @return 招标项目集合
     */
    public List<CsTender> selectCsTenderList(CsTender csTender);

    /**
     * 新增招标项目
     * 
     * @param csTender 招标项目
     * @return 结果
     */
    public int insertCsTender(TenderInviteSupplierVO csTender);

    /**
     * 修改招标项目
     * 
     * @param csTender 招标项目
     * @return 结果
     */
    public int updateCsTender(CsTender csTender);

    /**
     * 批量删除招标项目
     * 
     * @param sIds 需要删除的招标项目主键集合
     * @return 结果
     */
    public int deleteCsTenderBySIds(Long[] sIds);

    /**
     * 删除招标项目信息
     * 
     * @param sId 招标项目主键
     * @return 结果
     */
    public int deleteCsTenderBySId(Long sId);

    Map<String, Object> getTenderProjectInfo(String iNumber);

    R<Integer> updateTenderProject(TenderFileVO csTender);

    R<Integer> deleteTenderProject(String iNumber);

    R<Integer> changeTenderProjectStatus(TenderFileVO csTender);

    List<CSNotice> getTenderNoticeByINumber(String iNumber);

    R<Integer> addTenderNotice(NoticeVO noticeVO);

    NoticeVO getNoticeInfoByUId(String iNumber);

    R<Integer> submitTenderNotice(NoticeVO noticeVO);

    R<Integer> editTenderNotice(NoticeVO noticeVO);

    R<Integer> examineNoticeRow(NoticeVO noticeVO);

    R<Integer> releaseNoticeRow(String uId);

    R<Integer> deleteNoticeRow(String uId);

    List<File> getFileListByINumber(String iNumber);

    R<Integer> rejectNotice(Integer uId);

    R<Integer> addTenderFile(TenderFileNameVO fileNameVO);

    R<Integer> deleteTenderFile(Integer bDocuId);

    R<Map<String, Object>> bidGetDocumentPeople(String iNumber);

    R<List<SubmissionSupplierVO>> getBidPeopleList(String iNumber);

    R<CsTender> getTender(String iNumber);

    R<TenderNoticeVO> getProjectStateAndStartTime(String iNumber);

    List<CsCandidate> getAllSupplierList(CsTender tender);

    List<CsSupplier> getAllBidder(String iNumber);

    Integer addCandidate(CsCandidate csCandidate);

    List<File> getBidDocument(String iNumber);

    Integer addSubmission(CSSubmission csSubmission);

    Map<String,Object> getBidWinningCandidate(String iNumber);

    Integer setStartTenderTime(CsTender csTender);

    Integer confirmWinningBidder(List<CsCandidate> strings);

    Map<String, Object> getBidWinningCandidateAndSended(String iNumber);

    List<WinningResultsSupplier> setNoticeToSupplier(List<CsWinningResults> candidates);


    public int selectTenderCount();

    public List<CsTender> selectTenderByState(CsTender csTender);

    public int selectTenderByStateCount(CsTender csTender);

    TenderStatusTime getTenderStatusTime(String iNumber);

    List<CsWinningResults> getBidingResult();

    CsSupplier getPersonInfo();

    Map<String,Object> getLoginTenderInfo();

    TenderNoticeVO getTenderNoticeInfo(String iNumber);

    List<CsCandidate> getWinnResult(String iNumber);

    List<CsCandidate> getNoBidingResult();

    List<CSCategory> getCategory();
}
